package io.gitee.kotle.android

import com.google.gson.Gson
import com.google.gson.GsonBuilder
import okhttp3.CookieJar
import okhttp3.OkHttpClient

/**
 * 关于此库的全局配置参数
 */
object BaseLibraryConfig {
    /**
     * 当前库是否是debug模式
     */
    var isDebug = false

    /**
     * 全局默认两次点击的时间间隔
     */
    var doubleClickSpace: Long = 300L

    /**
     * 是否支持多语言
     */
    var autoUpdateLocal: Boolean = false

    /**
     * 自定义全局[BaseGlobalConst.okHttpClient]
     */
    var onCreateOkhttpClient: Function0<OkHttpClient>? = null

    /**
     * 默认全局[OkHttpClient.Builde]
     */
    var onOkhttpClientBuilder: Function1<OkHttpClient.Builder, Unit>? = null

    /**
     * 全局的gson
     */
    var onGsonBuilder: Function1<GsonBuilder, Gson>? = null

    /**
     * 是否信任所有证书,默认不信任，为了传输安全
     * okhttp（必须在创建之前使用）
     */
    var enableOkHttpTrustAllCertificates = false

    /**
     * 是否使用cookieJar
     * okhttp（必须在创建之前使用）
     */
    var enableOkHttpCookieJar = false

    /**
     * 自定义cookie管理
     */
    var customOkHttpCookieJar: CookieJar? = null

    /**
     * 设置okhttp缓存，如果大于0，开启缓存
     */
    var okHttpCacheSize = 0

    /**
     * 图片加载的OkHttpClient
     */
    var coilOkHttpClient: Function1<OkHttpClient.Builder, OkHttpClient>? = null

    /**
     * 图片加载的OkHttpClient
     */
    var glideOkHttpClient: Function1<OkHttpClient.Builder, OkHttpClient>? = null

    /**
     * 设置字体大小是否受系统字体大小的调节影响
     */
    var enableScaleFontBySystem = false

    /**
     * 缩放密度
     * 因为适配之后的字体总是偏大，所以设置0.96使他小一点
     * 可以设置这个参数，调整字体大小
     */
    var scaledDensityScaleFactor = 0.96f

    /**
     * 是否允许屏幕适配
     */
    var enableScreenAdaptation = true

    /**
     * 屏幕适配，设计尺寸，单位dp
     * [enableScreenAdaptation]为true才有效
     */
    var screenAdaptationUiDp = 360

    /**
     * [screenAdaptationUiDp]设置的尺寸是否是设计稿的短边
     */
    var screenAdaptationByWidth = true


    /**
     * 是否支持第三方库适配
     */
    var enableOtherLibraryScreenAdaptation = true

    /**
     * app主动关闭的回调
     */
    var appDestroyedListener: Function0<Unit>? = null
}